package com.hqd.ch03.v50.boot.context.config;

import java.io.IOException;

/**
 * 配置文件加载
 *
 * @param <R>
 */
public interface ConfigDataLoader<R extends ConfigDataResource> {

    /**
     * 是否可加载
     *
     * @param context
     * @param resource
     * @return
     */
    default boolean isLoadable(ConfigDataLoaderContext context, R resource) {
        return true;
    }

    /**
     * 加载配置文件
     *
     * @param context
     * @param resource
     * @return
     * @throws IOException
     * @throws ConfigDataResourceNotFoundException
     */
    ConfigData load(ConfigDataLoaderContext context, R resource)
            throws IOException, ConfigDataResourceNotFoundException;

}

